1. Field of the Invention
This invention pertains to processing ecommerce financial transactions using a distributed system formed of potentially unreliable computers.
2. Description of the Related Art
Electronic commerce has become commonplace. Merchants conveniently offer goods and services by making them available at places like shopping centers, local grocery stores, and via the Internet. There are an even greater number of customers who purchase the goods and services. In many cases, the electronic commerce transactions involve physical goods. For example, many customers purchase items such as books, compact disks (CDs) and DVDs. Customers can also purchase electronic content such as downloadable text and/or music and access to web sites that provide news or entertainment stories.
Electronic commerce sites use electronic commerce payment systems to obtain payment information for transactions made by customers. Currently, credit cards and bank transfers are used for a majority of online transactions because of their convenience and reliability. Successful credit card transactions involve authorization and settlement phases, and bank transfers involve only the settlement phase. Authorization is a real time process by which the credit card issuer in a matter of seconds either approves or denies the transaction. Settlement is a batch process by which the authorized transactions are submitted to the credit card issuer for payment. Often the electronic commerce payment systems use third party vendors to perform settlement. These vendors receive transactions from one or more payment systems and submit batches of transactions to the credit card issuer for payment.
Electronic commerce payment systems handle millions of financial transactions everyday. Many payment systems use an expensive and highly-reliable machine (e.g., a mainframe computer) to batch and submit settlement requests to the vendor systems. However, such a machine constitutes a single point of failure and transaction processing can be brought to a halt if the machine fails. In addition, it is difficult to scale processing bandwidth without resorting to purchasing an additional, expensive machine. Thus, there is a need for a more flexible way to perform transaction processing.